<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>%(DocumentTitle)</title>
    <link rel="stylesheet" type="text/css" href="./swagger-ui.css">
    <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
    <style>
        html {
            box-sizing: border-box;
            overflow: scroll;
        }

        *,
        *:before,
        *:after {
            box-sizing: inherit;
        }

        body {
            margin: 0;
            background: #fafafa;
        }
    </style>
    <script async="async"
            id="mini-profiler"
            src="/Profiler/includes.min.js?v =4.3.8+1120572909"
            data-version="4.3.8+1120572909"
            data-path="/Profiler/"
            data-current-id="74963f82-d3b8-49f9-9bfe-26fc6ec09363"
            data-ids="74963f82-d3b8-49f9-9bfe-26fc6ec09363"
            data-position="Left"
            data-scheme="Auto"
            data-authorized="true"
            data-trivial="true"
            data-children="true"
            data-max-traces="15"
            data-toggle-shortcut="Alt+P"
            data-trivial-milliseconds="2.0"
            data-ignored-duplicate-execute-types="Open,OpenAsync,Close,CloseAsync"></script>
    %(HeadContent)
</head>

<body>
    <div id="swagger-ui"></div>

    <!-- Workaround for https://github.com/swagger-api/swagger-editor/issues/1371 -->
    <script>if (window.navigator.userAgent.indexOf("Edge") > -1) {
    console.log("Removing native Edge fetch in favor of swagger-ui's polyfill")
    window.fetch = undefined;
}</script>

    <script src="./swagger-ui-bundle.js"></script>
    <script src="./swagger-ui-standalone-preset.js"></script>
    <script>/* Source: https://gist.github.com/lamberta/3768814
                     * Parse a string function definition and return a function object. Does not use eval.
                     * @param {string} str
                     * @return {function}
                     *
                     * Example:
                     *  var f = function (x, y) { return x * y; };
                     *  var g = parseFunction(f.toString());
                     *  g(33, 3); //=> 99
                     */
function parseFunction(str) {
    if (!str) return void (0);

    const fn_body_idx = str.indexOf('{'),
        fn_body = str.substring(fn_body_idx + 1, str.lastIndexOf('}')),
        fn_declare = str.substring(0, fn_body_idx),
        fn_params = fn_declare.substring(fn_declare.indexOf('(') + 1, fn_declare.lastIndexOf(')')),
        args = fn_params.split(',');

    args.push(fn_body);

    function Fn() {
        return Function.apply(this, args);
    }

    Fn.prototype = Function.prototype;

    return new Fn();
}

window.onload = function () {
    const configObject = JSON.parse('%(ConfigObject)');
    const oauthConfigObject = JSON.parse('%(OAuthConfigObject)');

    // Workaround for https://github.com/swagger-api/swagger-ui/issues/5945
    configObject.urls.forEach(function (item) {
        if (item.url.startsWith("http") || item.url.startsWith("/")) return;
        item.url = window.location.href.replace("index.html", item.url).split('#')[0];
    });

    // If validatorUrl is not explicitly provided, disable the feature by setting to null
    if (!configObject.hasOwnProperty("validatorUrl"))
        configObject.validatorUrl = null

    // If oauth2RedirectUrl isn't specified, use the built-in default
    if (!configObject.hasOwnProperty("oauth2RedirectUrl"))
        configObject.oauth2RedirectUrl = (new URL("oauth2-redirect.html", window.location.href)).href;

    // Apply mandatory parameters
    configObject.dom_id = "#swagger-ui";
    configObject.presets = [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset];
    configObject.layout = "StandaloneLayout";

    // Parse and add interceptor functions
    var interceptors = JSON.parse('%(Interceptors)');
    if (interceptors.RequestInterceptorFunction)
        configObject.requestInterceptor = parseFunction(interceptors.RequestInterceptorFunction);
    if (interceptors.ResponseInterceptorFunction)
        configObject.responseInterceptor = parseFunction(interceptors.ResponseInterceptorFunction);

    // Begin Swagger UI call region

    const ui = SwaggerUIBundle(configObject);

    ui.initOAuth(oauthConfigObject);

    // End Swagger UI call region

    window.ui = ui
}</script>
</body>
</html>